// pages/personal/personal.js
// attentionData是缓存数据，attenData是渲染数据
const app = getApp();
var attenData = [];
var watchData = [];
Page({

  /**
   * 页面的初始数据
   */
  data: {
    atten_unfold_state:false,
    watch_unfold_state:false,
    attenData:[],//关注渲染数据
    watchData:[],//观看记录渲染数据
    atten_visible_height:"",
    watch_visible_height:"",
    atten_showTip:true,//此处修改为关注提示，需新增一个观看记录提示
    watch_showTip:true
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function () {
    
  },
  //点击展开
  unfold(e){
    console.log(e)
    if(e.target.dataset.k=="attention"){
      this.setData({
        atten_unfold_state:true
      })
    }
    if(e.target.dataset.k=="watch"){
      this.setData({
        watch_unfold_state:true
      })
    }
  },
  //点击收起
  packUp(e){
    console.log("触发了一次")
    if(e.target.dataset.k=="attention"){
      this.setData({
        atten_unfold_state:false
      })
    }
    if(e.target.dataset.k=="watch"){
      this.setData({
        watch_unfold_state:false
      })
    }
  },
  //跳转到章节页面
  tochapter(e){
    app.tochapter(e)
  },
  //关注区域长按删除对应漫画缓存
  atten_remove(even){
    // console.log("长按触发的事件对象",even)
    wx.showModal({
      title: '是否取消关注？',
      confirmText:'是的',
      cancelText:'取消',
      showCancel:true,
      success:(res)=>{
        if (res.confirm) {
          //必须用一个变量把缓存存起来，因为splice的返回值是被删除的元素，所以直接使用data的attenData调用splice后，没办法setData更新数据。
          attenData.splice(even.currentTarget.dataset.index,1)
          this.setData({//渲染数据需要通过setData更新，setdata是异步操作
            attenData:attenData
          })
          // console.log("变量attenData",attenData)
          //当用户移除关注时,动态调整显示高度
          if(attenData.length>0){
            app.sStorageSync("attentionData",this.data.attenData,"removeAttenData")
            if(attenData.length<=3){
              this.setData({
                atten_visible_height:'380'
              })
            }else{
              this.setData({
                atten_visible_height:'760'
              })
            }
          }
          //当变量被切完，不管渲染attentionData，直接移除缓存
          if(attenData.length==0){
            try {
              wx.removeStorageSync('attentionData')
            } catch (e) {
              console.log("removeStorageSync(attentionData)_err",e)
              // Do something when catch error
            }
            this.setData({
              atten_showTip:true,//显示关注提示版块
              atten_visible_height:'120'//当用户移除最后一个关注时,移除的时候动态调整显示高度
            })
          }
          console.log(this.data.atten_showTip)
        } else if (res.cancel) {
          // console.log('用户点击取消')
        }
      }
    })
  },
    // 观看记录区域长按删除对应漫画缓存
    watch_remove(even){
      // console.log("长按触发的事件对象",even)
      wx.showModal({
        title: '是否删除观看记录？',
        confirmText:'是的',
        cancelText:'取消',
        showCancel:true,
        success:(res)=>{
          if (res.confirm) {
            //心得：必须用一个变量把缓存存起来，因为splice的返回值是被删除的元素，所以直接使用data的watchData调用splice后，没办法setData更新数据。
            watchData.splice(even.currentTarget.dataset.index,1)
            this.setData({//渲染数据需要通过setData更新，setdata是异步操作
              watchData:watchData
            })
            // console.log("变量watchData",watchData)
            //当用户移除观看记录时,动态调整显示高度
            if(watchData.length>0){
              app.sStorageSync("attentionData",this.data.watchData,"removewatchData")
              if(watchData.length<=3){
                this.setData({
                  watch_visible_height:'380'
                })
              }else{
                this.setData({
                  watch_visible_height:'760'
                })
              }
            }
            //当变量被切完，不管渲染watchData，直接移除缓存
            if(watchData.length==0){
              try {
                wx.removeStorageSync('watchRecord')
              } catch (e) {
                console.log("removeStorageSync(attentionData)_err",e)
                // Do something when catch error
              }
              this.setData({
                watch_showTip:true,//显示关注提示版块
                watch_visible_height:'120'//当用户移除最后一个关注时,移除的时候动态调整显示高度
              })
            }
            console.log(this.data.watch_showTip)
          } else if (res.cancel) {
            // console.log('用户点击取消')
          }
        }
      })
    },
  getUserInfo: function(e) {
    console.log(e)
    app.globalData.userInfo = e.detail.userInfo
    this.setData({
      userInfo: e.detail.userInfo,
      hasUserInfo: true
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
  
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    //获取关注缓存,需要渲染,在data里定义,为了使用splice，需要用变量定义,下面是关注数据处理
    attenData = wx.getStorageSync("attentionData")
    this.setData({
      attenData:attenData
    })
    attenData.length > 0 ? attenData : attenData = [];
    console.log(attenData)
    if(attenData.length==0){
      console.log("空的")
      // 没有数据则显示关注提示版块，切换时候动态
      this.setData({
        atten_showTip:true,
        atten_visible_height:'120'
      })
    }else{
      // 有数据则展示内容版块
      this.setData({
        atten_showTip:false
      });
      if(attenData.length<=3){
        this.setData({
          atten_visible_height:'380'
        })
      }else{
        this.setData({
          atten_visible_height:'760'
        })
      }
    }
    console.log("是否显示关注提示",this.data.atten_showTip)
    //获取缓存,需要渲染,在data里定义,为了使用splice，需要用变量定义,下面是观看shujv处理
    watchData = wx.getStorageSync("watchRecord")
    this.setData({
      watchData:watchData
    })
    watchData.length > 0 ? watchData : watchData = [];
    console.log(watchData)
    if(watchData.length==0){
      console.log("空的")
      // 没有数据则显示关注提示版块，切换时候动态
      this.setData({
        watch_showTip:true,
        watch_visible_height:'120'
      })
    }else{
      // 有数据则展示内容版块
      this.setData({
        watch_showTip:false
      });
      if(watchData.length<=3){
        this.setData({
          watch_visible_height:'380'
        })
      }else{
        this.setData({
          watch_visible_height:'760'
        })
      }
    }
    console.log("是否显示观看记录提示",this.data.watch_showTip)
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
  
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
  
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
  
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
  
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
  
  }
})